<?php
global $doc;		// le document XML à générer
global $nom, $mail, $mdp, $verif, $verif2, $newMdp, $newMdp2;
$verif = false; // vérification existe utilisateur
$verif2 = false; // vérification authentification

include_once ('_inc_parametres.php');
include_once ('_inc_fonctions_boite_a_outils.php');
include_once ('_inc_connexion.php');
include_once ('_inc_fonctions_bdd_reservations.php');

// crée une instance de DOMdocument
$doc = new DOMDocument();

// specifie la version et le type d'encodage
$doc->version = '1.0';
$doc->encoding = 'ISO-8859-1';

// crée un commentaire et l'encode en ISO
$elt_commentaire = $doc->createComment('Service web DemanderMdp - BTS SIO - Lycée De La Salle - Rennes');
// place ce commentaire à la racine du document XML
$doc->appendChild($elt_commentaire);

if ( empty ($_GET ["nom"]) == true)  $nom = "";  else   $nom = $_GET ["nom"];
if ( empty ($_GET ["ancienMdp"]) == true)  $ancienMdp = "";  else   $ancienMdp = $_GET ["ancienMdp"];
if ( empty ($_GET ["nouveauMdp"]) == true)  $nouveauMdp = "";  else   $nouveauMdp = $_GET ["nouveauMdp"];
if ( empty ($_GET ["confirmationMdp"]) == true)  $confirmationMdp = "";  else   $confirmationMdp = $_GET ["confirmationMdp"];

if ( $nom == "" )
{
	if ( empty ($_POST ["nom"]) == true)  $nom = "";  else   $nom = $_POST ["nom"];
}
if ( $ancienMdp == "" )
{
	if ( empty ($_POST ["ancienMdp"]) == true)  $ancienMdp = "";  else   $ancienMdp = $_POST ["ancienMdp"];
}
if ( $nouveauMdp == "" )
{
	if ( empty ($_POST ["nouveauMdp"]) == true)  $nouveauMdp = "";  else   $nouveauMdp = $_POST ["nouveauMdp"];
}
if ( $confirmationMdp == "" )
{
	if ( empty ($_POST ["confirmationMdp"]) == true)  $confirmationMdp = "";  else   $confirmationMdp = $_POST ["confirmationMdp"];
}

$verif = existeUtilisateur($nom);
$verif2 = estIdentifie($nom, $ancienMdp);

if ( $nom == "" || $ancienMdp == "" || $nouveauMdp == "" || $confirmationMdp == "")
{	TraitementAnormal("Erreur : données incomplètes.");	
}
elseif($verif == false )
{	TraitementAnormal("Erreur : nom d'utilisateur inexistant.");	
}
elseif($verif2 == false )
{	TraitementAnormal("Erreur : authentification incorrecte.");
}
elseif($nouveauMdp != $confirmationMdp)
{	TraitementAnormal("Erreur : le nouveau mot de passe et sa confirmation sont différents.");
}
else
{
	TraitementNormal();
	mysql_close ($cnx);
}

$doc->formatOutput = true;
echo $doc->saveXML();
exit;


function TraitementAnormal($msg)
{	
	global $doc;
	$elt_data = $doc->createElement('data');
	$doc->appendChild($elt_data);
	// place l'élément 'reponse' juste après l'élément 'data'
	$elt_reponse = $doc->createElement('reponse', $msg);
	$elt_data->appendChild($elt_reponse); 
	return;
}

function TraitementNormal()
{	// redéclaration des données globales utilisées dans la fonction
global $nom, $mail, $ancienMdp, $doc, $nouveauMdp, $cnx, $mdp;
// crée l'élément 'data' à la racine du document XML
$elt_data = $doc->createElement('data');
$doc->appendChild($elt_data);
// place l'élément 'reponse' juste après l'élément 'data'

$req = "SELECT email FROM mrbs_users WHERE name LIKE '". $nom ."'";
$result = mysql_query ($req, $cnx);
$mail = mysql_result($result, 0);

$req = "SELECT password FROM mrbs_users WHERE name LIKE '". $nom ."'";
$result = mysql_query ($req, $cnx);
$mdp = mysql_result($result, 0);

if( md5($ancienMdp) == $mdp)
{
	$ancienMdp = creerMdp();
	$reponse = "Enregistrement effectué ; vous allez recevoir un mail de confirmation.";
	envoyerMail ($mail, "Confirmation du nouveau Mot de passe", "Voici votre nouveau mot de passe : " . $nouveauMdp . "\n\n Hashcode : " . md5($nouveauMdp), "delasalle.sio.crib@gmail.com");
	
	$req = "UPDATE mrbs_users SET password = '". md5($nouveauMdp) ."' WHERE name = '" . $nom."'";
	mysql_query ($req, $cnx);
	
	
	$elt_reponse = $doc->createElement('reponse', $reponse);
	$elt_data->appendChild($elt_reponse);
	return;
}
else
{
	$reponse = "Erreur : authentification incorrecte.";
	$elt_reponse = $doc->createElement('reponse', $reponse);
	$elt_data->appendChild($elt_reponse);
	return;
}
}